import { commands, window } from "vscode"
/**
 * 注册一个跳转命令，用于支持多个路径的情况
 * vscode默认定义的路径为第一个，且可能是错误的
 * 本插件提供第二个定义，并跳转第二个定义，保证跳转的正确性
 */
export const enterKeyEvent = commands.registerCommand(
  "vscode-path-alias.toSecondDefinition",
  async () => {
    const editor = window.activeTextEditor // 获取当前打开的编辑器
    if (!editor) return // 不一定有编辑器打开，所以需要判断一下
    const lineText = editor.document.lineAt(editor.selection.start.line).text // 获取光标所在行文本
    console.log(lineText)

    // 配合功能2,支持定义跳转
    if (lineText.includes("~@")) return commands.executeCommand("editor.action.revealDefinition")
    // 如果是图片路径，直接结束
    if (lineText.includes("url(") || lineText.includes("src=")) return
    // 跳转第二个定义
    await commands.executeCommand("editor.action.revealDefinitionAside") // 打开定义列表
    await commands.executeCommand("list.focusDown") // 向下选择三次，至第二个定义
    await commands.executeCommand("list.focusDown")
    await commands.executeCommand("list.focusDown")
    await commands.executeCommand("list.select") // 选中第二个定义
    await commands.executeCommand("list.focusDown")
    commands.executeCommand("revealReference") // 跳转第二个定义
  }
)
